dojo.provide("lotex.array");

lotex.array = {
    //arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
    insert: function(aArray, index, bArray) {
        // TODO
        // if bArray is array
        // ALERT
        // argument number limit
        aArray.splice.apply(aArray,
            dojo.lang.unnest(index, 0, bArray));
    },

    //explode('.', strval(num));
    explode: function(tag, s) {
        var regstr = tag;
        var key = ['.','^','$'];
        for (var i=0; i<key.length; i++) {
            if (tag==key[i]) regstr = "\\"+tag;
        }

        var r;
        var re = new RegExp(regstr);

        var ret = [];
        while((r = s.match(re)) != null) {
            if(r.index>0) ret.push(s.substring(0,r.index));
            //ret.push(s.substring(r.index,r.lastIndex));
            s = s.substring(r.lastIndex, s.length);
        }
        ret.push(s);
        return ret;
    },

    clone: function(a) {
        var len = a.length;
        var ret = [];
        for(var i=0; i<len; i++) {
            ret.push(a[i]);
        }
        return ret;
    },

    has: function(a, value, flag) {
        if(!dojo.lang.isArray(a)) return false;
        var s = "\x0f" + a.join("\x0f") + "\x0f";
        var rflag = "g";
        if(flag) rflag += flag;
        var r = new RegExp().compile("\\x0f"+value+"\\x0f", rflag);
        var b = s.match(r);
        s = "";
        return b==null || b.length == 0 ? false : true;
    },

getUnique2: function (A)
{
    var str = "\x0f"+ A.join("\x0f");
    d(str);
    var re = /\x0f\s*\x0f/g;
        while(re.test(str)) {
        str = str.replace(re,"\x0f");
        d(str);
    }
    dd(re.test(str))
    dd(str);
        return str.substr(1).split("\x0f");
}
}